var AdUtil = {
    
    /**
     * 显示banner广告
     */
    showBanner:function(make_new){
        //默认是个新的广告
        //销毁
        if(Config.channelID == 2 && typeof BK != "undefined" ){
            if(Config.bannerAd == null){
                BK.Advertisement.fetchBannerAd(function (retCode, msg, adBannerHandle) {
                    if (retCode == 0) {
                        Config.bannerAd = adBannerHandle
                        //2.开发者 使用adBannerHanlde 
                        //2.1 决定是否展示
                        Config.bannerAd.show(function (succCode, msg, handle) {
                            if (succCode != 0) {
                                Tool.log("展示失败 msg:" + msg);
                            }
                        });
                        //2.2 开发者主动关闭广告。
                        //Config.bannerAd.close(); 
                        Config.bannerAd.onClickContent(function () {
                            //用户点击了落地页
                        });
                        Config.bannerAd.onClickClose(function () {
                            //用户点击了X关闭广告
                        });
                    }
                    else {
                        Tool.log( "fetchBannerAd failed. retCode:" + retCode);
                    }
                }.bind(this));
            }else{
                //Config.bannerAd.show();
            }
        }
        if(Config.channelID == 1){
            if(make_new && Config.bannerAd){
                Config.bannerAd.destroy();
                Config.bannerAd = null;
            }
            if(Config.bannerAd != null){
                Config.bannerAd.show();
            }else{
                // Laya.timer.loop(15000, AdUtil, AdUtil.autoChangeBanner);
                if(wx.createBannerAd){
                    var screenHeight = Laya.Browser.clientHeight; //wx.getSystemInfoSync().windowHeight;
                    Config.bannerAd = wx.createBannerAd({
                        adUnitId: 'adunit-64eafab5de772339',
                        style: {
                            left: 0,
                            top: screenHeight-40,
                            width: Laya.Browser.clientWidth,
                            height:40
                        }
                    });
                    Config.bannerAd.onError(function (res) {
                        switch (res.errCode) {
                            case 1004:
                                var errTips = new ErrTips("无合适的广告...",2000);
                                break;
                            case 1005:
                                var errTips = new ErrTips("广告组件审核中...",2000);
                                break;
                            default:
                                var errTips = new ErrTips("banner广告加载失败...",2000);
                                break;
                        }
                    })
                    Config.bannerAd.show();
                    Config.bannerAd.onResize(function(res){
                        Config.bannerAd.style.top = screenHeight-Config.bannerAd.style.realHeight;
                    });
                }else{
                    //当前不支持
                }
            }
        }
        if(Config.channelID == 100 && typeof opUnion != "undefined" ){
            if(Config.bannerAd == null){
                Config.bannerAd = opUnion.createBannerAd({
                    containerId: 'banner_div',    
                    posId: '27927',    
                    mediaId: '101000114',
                });
                Config.bannerAd.onLoad(function (err) {
                    Tool.log('Banner ',err);
                })
                Config.bannerAd.onError(function (err) {
                    Tool.log('onError ',err);
                    var errTips = new ErrTips("banner广告加载失败: "+err.msg,2000)
                })
            }else{
                //Config.bannerAd.show();
            }
        }
        if(Config.channelID == 101 && typeof qg != "undefined" && Config.isLoadSuccess){
            Tool.log("-------init oppo ad--------start show banner  typeof qg : ",typeof qg);  
            if(Config.bannerAd == null){
                Config.bannerAd = qg.createBannerAd({
                    posId: '38066',    
                });
                Config.bannerAd.onShow(function() {    
                    Tool.log("-------init oppo ad--------bannerAd : onShow");  
                })
                Config.bannerAd.onError(function (err) {
                    Tool.log('-------init oppo ad--------bannerAd : onError ',err.code);
                    Tool.log('-------init oppo ad--------bannerAd : onError ',err.msg);
                })
                Config.bannerAd.show()
            }else{
                Tool.log("-------init oppo ad--------Config.bannerAd show")
                Config.bannerAd.show()
            }
            Tool.log("-------init oppo ad--------bannerAd : ",Config.bannerAd);  
        }

        if(Config.channelID == 102) {
            if(qg.createBannerAd) {
                if(Config.bannerAd == null){
                    Config.bannerAd = qg.createBannerAd({
                        posId: '5662a241b03f4fcca45df59001b95fb6',
                        style: {}
                    });
                    Config.bannerAd.show();
                    Config.bannerAd.onSize(function(res){
                        Tool.log('-------init vivo ad--------bannerAd : onSize ',res);
                    });
                    Config.bannerAd.onError(function (err) {
                        Tool.log('-------init vivo ad--------bannerAd : onError ',err.errCode);
                        Tool.log('-------init vivo ad--------bannerAd : onError ',err.errMsg);
                    })
                }else{
                    Tool.log("-------init vivo ad--------Config.bannerAd show")
                    Config.bannerAd.show()
                }
            }
        }
        Config.bannerShow = true;
    },

    /**
     * 关闭banner广告
     */
    hideBanner:function(){
        if(Config.channelID == 1 || Config.channelID == 101 || Config.channelID == 102){
            if(Config.bannerAd){
                Config.bannerAd.hide();
            }
        }
        if(Config.channelID == 2){
            if(Config.bannerAd){
                //Config.bannerAd.hide();
            }
        }
        Config.bannerShow = false;
    },

    /**
     * 导入banner广告
     */
    autoChangeBanner:function(){
        if(Config.bannerAd && Config.channelID == 1 && Config.bannerShow){
            Config.bannerAd.destroy();
            Config.bannerAd = null;
            if(wx.createBannerAd){
                var screenHeight = wx.getSystemInfoSync().windowHeight;
                Config.bannerAd = wx.createBannerAd({
                    adUnitId: 'adunit-64eafab5de772339',
                    style: {
                        left: 0,
                        top: screenHeight-40,
                        width: Laya.Browser.clientWidth,
                        height:40
                    }
                });
                Config.bannerAd.show();
                Config.bannerAd.onResize(function(res){
                    Config.bannerAd.style.top = screenHeight-Config.bannerAd.style.realHeight;
                });
            }
        }
        if(Config.channelID == 102) {
            if(qg.createBannerAd) {
                Config.bannerAd.destroy();
                Config.bannerAd = null;
                /**
                 * style内无需设置任何字段，banner会在屏幕底部居中显示，style具体属性后续版本会开放
                 */
                Config.bannerAd = qg.createBannerAd({
                    posId: '5662a241b03f4fcca45df59001b95fb6',
                    style: {}
                });
                Config.bannerAd.show();
                Config.bannerAd.onSize(function(res){
                    Tool.log('-------init vivo ad--------bannerAd : onSize ',res);
                });
                Config.bannerAd.onError(function (err) {
                    Tool.log('-------init vivo ad--------bannerAd : onError ',err.code);
                    Tool.log('-------init vivo ad--------bannerAd : onError ',err.msg);
                })
            }
            
        }
    },
    
    /**
     * 导入激励视频
     */
    loadVideo:function(_isShow){
        Config.isLoadSuccess = false;
        //  默认隐藏
        if(Config.channelID == 1){
            if(wx.createRewardedVideoAd){
                Config.videoAd = wx.createRewardedVideoAd({ adUnitId: 'adunit-83e7d3dde345194f'});
                //创建失败重新拉去
                Config.videoAd.onError(function (res) {
                    switch (res.errCode) {
                        case 1004:
                            var errTips = new ErrTips("暂无视频...",2000);
                            break;
                        case 1005:
                            var errTips = new ErrTips("广告组件审核中...",2000);
                            break;
                        default:
                            var errTips = new ErrTips("广告加载失败...",2000);
                            break;
                    }
                })
                Config.videoAd.onLoad(function(){
                    Config.isLoadSuccess = true;
                });
                
                //
            }else{
                //当前不支持
                
            }
        }
        if(Config.channelID == 2){
             Config.isLoadSuccess = true;
        }
        if(Config.channelID == 101 && typeof qg != "undefined"){
            if(!Config.videoAd){
                Config.videoAd = qg.createRewardedVideoAd({
                    posId : "38068",
                })
                Config.videoAd.onLoad(function () {
                    //加载成功
                    Config.isLoadSuccess = true;
                    Tool.log("-------init oppo ad--------Rewarded videoAd onLoad");  
                });
                Config.videoAd.onError(function (err) {
                    //加载失败
                    Tool.log("-------init oppo ad--------Rewarded videoAd onError----code:"+err.code+" msg:"+err.msg);  
                });
            }
            Tool.log("-------init oppo ad--------Rewarded videoAd begin load");  
            Config.videoAd.load()
        }
    },

    /**
     * 播放激励视频
     */
    showVideo:function(){
        //播放视频的时候,隐藏广告banner
        // AdUtil.hideBanner();
        //关闭音乐
        Audio.pauseAll();

        if(Config.channelID == 1){
            if(Config.videoAd){
                Config.videoAd.load().then(function(){
                    Config.videoAd.show();
                });
            }else{
                AdUtil.loadVideo(true);
            }
        }
        if(Config.channelID == 2){
            
        }
        if(Config.channelID == 101 && typeof qg != "undefined"){
            Tool.log("-------init oppo ad--------Rewarded videoAd show");  
            Config.videoAd.show();
        }
    },
    
    /**
     * 广告监听
     */
    addVideoListener:function(_playEnd,_playExit){
        if(Config.channelID == 101) {
            Config._playState = true;
        }
        
        if(Config.channelID == 1){
            if(Config.videoAd){
                Config.videoAd.onClose(function(res){
                    // 用户点击了【关闭广告】按钮
                    // 小于 2.1.0 的基础库版本，res 是一个 undefined
                    AdUtil.showBanner();
                    Audio.resumeAll();
                    if (res && res.isEnded || res === undefined) {
                        // 正常播放结束，可以下发游戏奖励
                        if(_playEnd != null){
                            _playEnd();
                        }
                    }
                    else {
                        // 播放中途退出，不下发游戏奖励
                        if(_playExit != null){
                            _playExit();
                        }
                    }
                });
            }
        }
        if(Config.channelID == 2 && typeof BK != "undefined"){
            //1.拉取广告
            var videoType = 3; //激励视频广告场景 0.游戏页面挂件广告 1.游戏结算页广告 2.游戏任务广告  3.游戏复活广告 
            BK.Advertisement.fetchVideoAd(videoType,function(retCode,msg,handle){
                    //handle  广告句柄 
                if (retCode == 0) {
                    Config.videoAd = handle;
                    Config.isLoadSuccess = true;
                    Config.videoAd.setEventCallack(
                        function(code,msg){
                            Tool.log("关闭游戏（不再使用不需要监听）"); //关闭游戏（不再使用不需要监听） 
                        }.bind(this),
                        function(code,msg){
                            Tool.log("达到看广告时长要求，可以下发奖励 code:"+code+" msg:"+msg);//达到看广告时长要求，可以下发奖励 
                            Config.isWatched = true;
                        }.bind(this),
                        function(code,msg){
                            Tool.log("关闭视频webview code:"+code+" msg:"+msg);//关闭视频webview 
                            if(Config.isWatched){
                                _playEnd();
                            }else{
                                _playExit();
                            }
                            AdUtil.showBanner();
                            Audio.resumeAll();
                        }.bind(this),
                        function(code,msg){
                            Tool.log("开始播放视频 code:"+code+" msg:"+msg);//开始播放视频 
                    }.bind(this));
                    Config.videoAd.jump();
                }else{
                    Tool.log("拉取视频广告失败 error:"+retCode+" msg:"+msg); //拉取视频广告失败
                }
                
            }.bind(this))
            
        }
        if(Config.channelID == 101 && typeof qg != "undefined"){
            Tool.log("-------init oppo ad--------Rewarded videoAd addVideoListener");  
            Config.videoAd.onRewarded(function () {
                if(Config.channelID == 101) {
                    Config._playEnd = _playEnd;
                }else {
                    Audio.resumeAll();
                    _playEnd();
                }
            })
        }
        
    },

    /**
     * 插屏广告 
     */
    showInterstitialAd:function(_isShow){
        if(Config.channelID == 100 && typeof opUnion != "undefined" ){
            if(Config.interstitialAd == null){
                Config.interstitialAd = opUnion.createInterstitialAd({
                    posId: '27926',    
                    mediaId: '101000114'
                });
            }else{
                Config.interstitialAd.load()
            }
            Config.interstitialAd.onLoad(function () {
                Config.interstitialAd.show().catch(function (err) {
                    var errTips = new ErrTips("插屏广告更新失败: "+err.msg,2000)
                    Config.interstitialAd.load().then(function () {
                        Config.interstitialAd.show()    
                    }) 
                })
            })
            Config.interstitialAd.onError(function (err) {
                var errTips = new ErrTips("插屏广告加载失败: "+err.msg,2000)
            })
            Config.interstitialAd.onClose(function () {
                Config.interstitialAd.offLoad()
                Config.interstitialAd.offError()
                Config.interstitialAd.offClose()
            })
        }
        if(Config.channelID == 101 && typeof qg != "undefined" ){
            Tool.log("-------init oppo ad--------start show interstitialAd : ");  
            if(Config.interstitialAd == null){
                Config.interstitialAd = qg.createInsertAd({
                    posId : "38067",
                })
            }else{
            }
            Config.interstitialAd.load()
            Config.interstitialAd.onLoad(function () {
                Tool.log("-------init oppo ad-------- interstitialAd onLoad");  
                Config.interstitialAd.show()
            })
            Config.interstitialAd.onError(function (err) {
                // var errTips = new ErrTips("插屏广告加载失败: "+err.msg,2000)
                Tool.log("---------init oppo ad--------- interstitialAd---err",err)
            })
        }
        
        if(Config.channelID == 102) {
            var inP = Math.floor(Math.random()*100 + 1);
            Tool.log('-------init vivo ad-------- inP', inP);
            Tool.log('-------init vivo ad-------- Config.InsertP', Config.InsertP)
            if(qg.createInterstitialAd && Config.InsertP >= inP) {
                Tool.log("-------init vivo ad--------start show interstitialAd : ");
                Config.interstitialAd = null;
                if(Config.interstitialAd == null) {
                    Config.interstitialAd = qg.createInterstitialAd({
                        posId: '344eadd57e134fd58e8d767ce997fcbf'
                    });
                    Config.interstitialAd.load();
                    Config.interstitialAd.onLoad(function () {
                        Tool.log("-------init vivo ad-------- interstitialAd onLoad");  
                    })
                    Config.interstitialAd.onError(function (err) {
                        // var errTips = new ErrTips("插屏广告加载失败: "+err.msg,2000)
                        Tool.log("---------init vivo ad--------- interstitialAd---err",err)
                    })
                    Config.interstitialAd.show();
                }else {
                    Tool.log("-------init vivo ad-------- +++++++++ show : ");
                    Config.interstitialAd.show();
                }
            }
        }
    },

    /**
     * oppo原生广告
     * 参数：原生广告名，原生广告ID，	原生广告获取成功，原生广告获取失败
     */
    showNativeBanner: function(nativeType, nativeId, onSuccess, onFail) {
        Tool.log("-------init oppo ad native ad showNativeBanner-------------------");
        Config[nativeType] = qg.createNativeAd({
            posId: nativeId
        })

        Config[nativeType].load();

        Config[nativeType].onLoad(function(res) {
            // 原生广告获取成功
            Tool.log("-------init oppo ad native ad success-------------------");
            onSuccess(res);
        })

        Config[nativeType].onError(function(err) {
            // 原生广告获取失败
            Tool.log("-------init oppo ad native ad onError-------------------");
            onFail(err);
        })
        // Config[nativeType].destroy();
    },

    /**
     * vivo的原生广告
     * native_ad_title	    string	广告标题
     * native_ad_desc	    string	广告描述
     * native_ad_icon_url	string	广告Icon图片地址
     * native_ad_img_url	string	广告大图图片地址
     * native_ad_type	    number	广告类型：1网址类 8快游戏跳转
     * 
     * 参数：原生广告名，原生广告ID，	监听广告加载结束时的回调，取消监听广告加载结束时的回调
     */
    // showVivoNativeBanner: function(nativeType, nativeId) {
    //     // 创建一个原生广告位
    //     if(!Config[nativeType]) {
    //         Config[nativeType] = qg.createNativeAd({'posId': nativeId});
    //     }
    // }

}